主题
登录 - Login
函数简介
用户登录授权系统,验证用户身份并注册插件功能。本接口登录成功会自动注册插件,不需要调用 Reg 接口重复注册,也不需要提前注册避免无效扣费。
返回数据格式:
json
{
"EndTime": "2026-01-30 11:40:41.193",
"LastVersion": "",
"LicenseType": 3,
"LicenseTypeStr": "月卡",
"Message": "",
"RemainingCount": 0,
"ServerTime": "2025-12-30 11:40:41.714",
"Status": 1,
}| 字段名 | 说明 |
|---|---|
| EndTime | 授权到期时间。 |
| LastVersion | 最新的版本号。 |
| LicenseType | 授权类型:0次卡,1小时卡,2日卡,3月卡,4年卡,5永久卡。 |
| LicenseTypeStr | 授权类型中文描述。 |
| Message | 提示信息;失败时多为 错误码:中文描述(如 "2001:未激活"),也可直接展示给用户。完整对照见 客户端错误码说明。 |
| RemainingCount | 次卡剩余数量。 |
| ServerTime | 服务器时间。 |
| Status | 授权状态:1正常,0失败。 |
常见错误码(Message 字段)
格式:{错误码}:{中文描述}。
| Message | 含义 |
|---|---|
2001:未激活 | 未激活,需先 Activate / Trial |
2002:用户码无效 | 用户码无效 |
2003:参数无效 | 参数无效 |
2004:用户不存在 | 用户不存在 |
2005:软件不可用或未开通 | 软件不可用或未开通 |
2006:访问被拒绝 | 访问被拒绝(黑白名单) |
2007:账号权限不足 | 账号权限不足 |
2008:授权无效 | 授权无效 |
2009:余额不足 | 余额不足 |
2010:插件验证失败 | 插件验证过程异常 |
2011:次卡功能已隐藏 | 次卡功能已隐藏 |
2012:特性不被允许 | 插件特性不在软件白名单 |
2018:权限不合法,请检查FeatureList参数 | FeatureList 不合法 |
2099:未知错误 | 未知错误 |
接口名称
LoginDLL调用
long Login(string userCode, string softCode, string featureList, string softVersion, string dealerCode);参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| userCode | 字符串 | 用户码。 |
| softCode | 字符串 | 软件码。 |
| featureList | 字符串 | 功能列表。为空时只使用授权系统,不注册插件。如OLA、YOLO等,多个特性用 | 分割,如使用YOLO功能 OLA|YOLO。 |
| softVersion | 字符串 | 软件版本。用于区分软件版本信息,未来可用于版本控制,可传空串。 |
| dealerCode | 字符串 | 经销商码。用于区分经销商信息,可传空串。 |
示例
SDK 调用
cpp
#include "OLAPlugServer.h"
OLAPlugServer ola;
OlaAuthLoginReturn result = ola.Login("userCode", "softCode", "OLA|YOLO", "1.0.0", "dealerCode");
// result.Status == 1 表示登录成功csharp
using OLAPlug;
var ola = new OLAPlugServer();
OlaAuthLoginReturn result = ola.Login("userCode", "softCode", "OLA|YOLO", "1.0.0", "dealerCode");
// result.Status == 1 表示登录成功python
from OLAPlugServer import OLAPlugServer
ola = OLAPlugServer()
json_result = ola.Login("userCode", "softCode", "OLA|YOLO", "1.0.0", "dealerCode")
# Python SDK 返回 JSON 字符串,需自行解析java
import com.olaplug.OLAPlugServer;
import com.olaplug.model.OlaAuthLoginReturn;
OLAPlugServer ola = new OLAPlugServer();
OlaAuthLoginReturn result = ola.Login("userCode", "softCode", "OLA|YOLO", "1.0.0", "dealerCode");
// result.Status == 1 表示登录成功go
import "github.com/ola/olaplug/olaplug"
ola, _ := olaplug.NewOLAPlugServer("OLAPlug_x64.dll")
defer ola.ReleaseObj()
result := ola.Login("userCode", "softCode", "OLA|YOLO", "1.0.0", "dealerCode")
// result.Status == 1 表示登录成功rust
use olaplug::OLAPlugServer;
let ola = OLAPlugServer::new("OLAPlug_x64.dll").unwrap();
let result = ola.login("userCode", "softCode", "OLA|YOLO", "1.0.0", "dealerCode");
// result.status == 1 表示登录成功cpp
var ola = com("OlaPlug.OlaSoft")
var result = ola.Login("userCode", "softCode", "OLA|YOLO", "1.0.0", "dealerCode")vbscript
Set ola = CreateObject("OlaPlug.OlaSoft")
Set result = ola.Login("userCode", "softCode", "OLA|YOLO", "1.0.0", "dealerCode")text
.局部变量 ola, OLAPlug
.局部变量 result, OlaAuthLoginReturn
ola.创建 ()
result = ola.Login(“userCode”, “softCode”, “OLA|YOLO”, “1.0.0”, “dealerCode”)aardio
import OLAPlugServer;
var ola = OLAPlugServer();
var json = ola.Login("userCode", "softCode", "OLA|YOLO", "1.0.0", "dealerCode");
// Aardio SDK 返回 JSON 字符串,需自行解析text
变量 ola <类型 = OLAPlugServer>
变量 result <类型 = OlaAuthLoginReturn>
ola = 新建 OLAPlugServer
result = ola.Login("userCode", "softCode", "OLA|YOLO", "1.0.0", "dealerCode")cpp
#include "OLAPlugServer.h"
OLAPlugServer ola;
OlaAuthLoginReturn result = ola.Login("userCode", "softCode", "OLA|YOLO", "1.0.0", "dealerCode");
// result.Status == 1 表示登录成功原生 DLL 调用
cpp
long resultPtr = Login("userCode", "softCode", "OLA|YOLO", "1.0.0", "dealerCode");
if (resultPtr != 0) {
char result[512] = {0};
GetStringFromPtr(resultPtr, result, sizeof(result));
FreeStringPtr(resultPtr);
// result 为 JSON,如 {"Status":1,"EndTime":"..."}
}csharp
using System.Runtime.InteropServices;
using System.Text;
[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern long Login(string userCode, string softCode, string featureList, string softVersion, string dealerCode);
[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern int GetStringFromPtr(long ptr, StringBuilder lpString, int size);
[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern int FreeStringPtr(long ptr);
[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern int GetStringSize(long ptr);
long resultPtr = Login("userCode", "softCode", "OLA|YOLO", "1.0.0", "dealerCode");
if (resultPtr != 0) {
StringBuilder result = new StringBuilder(GetStringSize(resultPtr) + 1);
GetStringFromPtr(resultPtr, result, result.Capacity);
FreeStringPtr(resultPtr);
string resultStr = result.ToString();
}python
from ctypes import CDLL, c_int64, create_string_buffer
ola = CDLL("OLAPlug_x64.dll")
ola.Login.restype = c_int64
resultPtr = ola.Login(
b"userCode", b"softCode", b"OLA|YOLO", b"1.0.0", b"dealerCode"
)
if resultPtr:
buf = create_string_buffer(1024)
ola.GetStringFromPtr(resultPtr, buf, 1024)
ola.FreeStringPtr(resultPtr)
result = buf.value.decode("utf-8")返回值
| 调用方式 | 返回值 | 说明 |
|---|---|---|
| SDK | OlaAuthLoginReturn | 结构化返回对象;Status == 1 表示登录成功 |
| 原生 DLL | 非 0 | 成功,返回 JSON 字符串格式的结果。 |
| 原生 DLL | 0 | 失败。 |
注意事项
| 项目 | 说明 |
|---|---|
| 释放内存 | 返回的字符串指针需要调用 FreeStringPtr 接口释放内存。 |
| 如果 featureList 参数为空 | 如果 featureList 参数为空,则只使用授权系统功能,不会注册相关插件功能。 |
| 用户码、软件码和经销商码需要从授权平台获取 | 用户码、软件码和经销商码需要从授权平台获取。 |
| 错误码 | Status == 0 时根据 Message 分支处理;完整码表见 客户端错误码说明。 |
